package com.vviton.zyhj.admin.controller;

import java.text.SimpleDateFormat;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;
import com.vviton.zyhj.admin.content.CommonConstants;
import com.vviton.zyhj.admin.service.QzjyjsService;
import com.vviton.zyhj.common.entity.TYyxtHzglHzgxb;
import com.vviton.zyhj.common.utils.ResultJson;
import com.vviton.zyhj.common.utils.page.Page;
import com.vviton.zyhj.common.view.ParmJsjlcx;
import com.wdcloud.framework.core.log.annotation.MonitorLog;

/**
 * ClassName: JyjsController <br/>
 * Function: 全站交易结算相关controller. <br/>
 * Date: 2016年11月18日 上午9:17:05 <br/>
 *
 * @author Administrator
 * @version 1.0
 * @since JDK 1.7
 */
@Controller
@RequestMapping("qzjyjs")
public class QzjyjsController {

    /** 全站交易service **/
    @Autowired
    private QzjyjsService qzjyjsService;

    /**
     * 
     * getJsxxpagination,(结算信息分页查询). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2016年11月18日 <br/>
     * ===============================================================<br/>
     * Modifier: qiaocf <br/>
     * Modify Date: 2016年11月18日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 参数类
     * @return 分页结果
     * @since JDK 1.7
     */
    @RequestMapping("getJsxxpagination")
    @ResponseBody
    @MonitorLog(text = "结算信息分页查询", containRequest = true)
    public Page getJsxxpagination(@RequestBody ParmJsjlcx param) {
        return qzjyjsService.getJsxxpagination(param);
    }

    /**
     * 
     * pldcJsxx,EXCEL导出结算信息表. <br/>
     * Author: tangli <br/>
     * Create Date: 2016年12月5日 <br/>
     * ===============================================================<br/>
     * Modifier: tangli <br/>
     * Modify Date: 2016年12月5日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param sj json数据
     * @param res response
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("pldcJsxx")
    @ResponseBody
    @MonitorLog(text = "EXCEL导出结算信息表", containRequest = true)
    public ResultJson pldcJsxx(@RequestParam String sj, HttpServletResponse res) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss+08");
        Gson gson = new Gson();
        ParmJsjlcx par = new ParmJsjlcx();
        Map<String, Object> jsondata = gson.fromJson(sj, Map.class);
        String sqsjks = (String) jsondata.get("sqsjks");
        String sqsjjs = (String) jsondata.get("sqsjjs");
        String jssjks = (String) jsondata.get("jssjks");
        String jssjjs = (String) jsondata.get("jssjjs");
        String jsfzh = (String) jsondata.get("jsfzh");
        String jsfmc = (String) jsondata.get("jsfmc");
        try {
            if (StringUtils.isNotBlank(sqsjks)) {
                par.setSqsjks(sdf.parse(sqsjks));
            }
            if (StringUtils.isNotBlank(sqsjjs)) {
                par.setSqsjjs(sdf.parse(sqsjjs));
            }
            if (StringUtils.isNotBlank(jssjks)) {
                par.setJssjks(sdf.parse(jssjks));
            }
            if (StringUtils.isNotBlank(jssjjs)) {
                par.setJssjjs(sdf.parse(jssjjs));
            }
            if (StringUtils.isNotBlank(jsfzh)) {
                par.setJsfzh(jsfzh);
            }
            if (StringUtils.isNotBlank(jsfmc)) {
                par.setJsfmc(jsfmc);
            }
            return qzjyjsService.pldcJsxx(par, res);
        } catch (Exception e) {

            e.printStackTrace();
            return new ResultJson(false);

        }

    }

    /**
     * 
     * pldcJsDcl,EXCEL导出结算待处理表. <br/>
     * Author: tangli <br/>
     * Create Date: 2016年12月6日 <br/>
     * ===============================================================<br/>
     * Modifier: tangli <br/>
     * Modify Date: 2016年12月6日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param ids id集合
     * @param res response
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("pldcJsDcl")
    @ResponseBody
    @MonitorLog(text = "EXCEL导出结算待处理表", containRequest = true)
    public ResultJson pldcJsDcl(@RequestParam String ids, HttpServletResponse res) {
        return qzjyjsService.pldcJsDcl(ids, res);

    }

    /**
     * 
     * getJsDclpagination,(结算信息待处理分页查询). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2016年11月18日 <br/>
     * ===============================================================<br/>
     * Modifier: Administrator <br/>
     * Modify Date: 2016年11月18日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 参数类
     * @return 分页结果
     * @since JDK 1.7
     */
    @RequestMapping("getJsDclpagination")
    @ResponseBody
    @MonitorLog(text = "结算信息待处理分页查询", containRequest = true)
    public Page getJsDclpagination(@RequestBody ParmJsjlcx param) {
        return qzjyjsService.getJsDclpagination(param);
    }

    /**
     * 
     * getDclCnt,(获取待处理个数). <br/>
     * Author: qiaocf <br/>
     * Create Date: 2016年11月18日 <br/>
     * ===============================================================<br/>
     * Modifier: Administrator <br/>
     * Modify Date: 2016年11月18日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 参数类
     * @return 个数
     * @since JDK 1.7
     */
    @RequestMapping("getDclCnt")
    @ResponseBody
    @MonitorLog(text = "获取待处理个数", containRequest = true)
    public Integer getDclCnt(@RequestBody ParmJsjlcx param) {
        return qzjyjsService.getDclCnt(param);
    }

    /**
     * getHzgxbxx,(获取合作方关系信息). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月7日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月7日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param zh 账号
     * @param ywy 业务域
     * @return 合作方关系信息
     * @since JDK 1.7
     */
    @RequestMapping("getHzgxbxx")
    @ResponseBody
    @MonitorLog(text = "获取合作方关系", containRequest = true)
    public TYyxtHzglHzgxb getHzgxbxx(@RequestParam String zh, @RequestParam String ywy) {
        return qzjyjsService.getHzgxbxx(zh, ywy);
    }

    /**
     * updateJsztByID,(根据id更新结算结算表中的结算状态). <br/>
     * Author: zhucb <br/>
     * Create Date: 2016年12月19日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2016年12月19日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param id 编号
     * @param req 请求
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("updateJsztByID")
    @ResponseBody
    @MonitorLog(text = "根据id更新结算结算表中的结算状态", containRequest = true)
    public ResultJson updateJsztByID(@RequestParam String id, HttpServletRequest req) {
        String zh = CommonConstants.getYwryzh(req);
        return qzjyjsService.updateJsztByID(id, zh);

    }

    /**
     * 
     * updateClwjs,(更新处理未结算状态). <br/>
     * Author: tangli <br/>
     * Create Date: 2016年12月19日 <br/>
     * ===============================================================<br/>
     * Modifier: tangli <br/>
     * Modify Date: 2016年12月19日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param id 结算订单id
     * @param req 请求
     * @return ResultJson
     * @since JDK 1.7
     */
    @RequestMapping("updateClwjs")
    @ResponseBody
    @MonitorLog(text = "更新处理未结算状态", containRequest = true)
    public ResultJson updateClwjs(@RequestParam String id, HttpServletRequest req) {
        String zh = CommonConstants.getYwryzh(req);
        return qzjyjsService.updateClwjs(id, zh);

    }
}
